//
// Created by lfm on 25-4-19.
//

#ifndef READERMANAGER_H
#define READERMANAGER_H

#include "Reader.h"
#include <fstream>
#include <vector>

class ReaderManager
{
public:
    // 构造函数，初始化ReaderManager对象
    ReaderManager();
    // 添加一个读者到读管理者中
    void addReader(const Reader &reader);
    // 根据账户删除一个读者，返回删除是否成功
    bool deleteReader(const string &account);
    // 根据账户修改读者密码，返回修改是否成功
    bool modifyReader(const string &account, const string &newPassword);
    // 根据账户查找读者，返回找到的读者指针，未找到则返回nullptr
    Reader *findReader(const string &account);
    // 显示所有读者的信息
    void displayReaders() const;
    // 将所有读者的信息保存到文件中
    void saveToFile() const;
    // 从文件中加载读者的信息
    void loadFromFile();
    // 获取所有读者的引用
    const vector<Reader> &getReaders() const { return readers; }

private:
    // 存储所有读者的容器
    vector<Reader> readers;
    // 数据文件的静态常量名称
    static const string DATA_FILE;
};

#endif // READERMANAGER_H